from selenium.webdriver.chrome.webdriver import WebDriver
from selenium.webdriver.common.keys import Keys


class BasePage:

    def __init__(self, wd: WebDriver):
        self.wd: WebDriver = wd
        """
            清空 input内容
        """

    @staticmethod
    def InputClear(inputElement):
        inputElement.send_keys(Keys.CONTROL + "a")
        inputElement.send_keys("")

        """ 
            查找父节点下的子节点集合, parent 先找到主节点, sub 代表父节点下的子节点名称,  index 用于选择 指定的一个 元素
            查找到后 并点击
       """

    def SelectButton(self, parent: str, sub: str, index: int):
        # 定位到cpu的父元素
        xpath = self.wd.find_element_by_xpath(parent)
        by_xpath = xpath.find_elements_by_xpath(sub)
        if by_xpath[index] is not None:
            # by_xpath[index].click()
            # 好像是元素被上层元素覆盖了..导致 抛出异常..只能使用js来触发点击事件
            self.wd.execute_script("arguments[0].click();", by_xpath[index])
            return by_xpath[index]

    """
        直接查找一个输入框 并输入一些数据
    """

    def SelectInput(self, pos: str, s: str, isClear=True):
        inputDataDisk = self.wd.find_element_by_xpath(pos)
        if isClear:
            self.InputClear(inputDataDisk)
        inputDataDisk.send_keys(s)


